Method of addressing and routing data

ABSTRACT

A method of routing packets in a system includes the steps of receiving a plurality of packets, each packet including a routing label and a packet type, routing each packet to a destination within the system specified in the routing label in response to the packet type being indicative of a data packet, and routing each packet to a processor within the system and sending a reply packet to a sender specified in the routing label in response to the packet type being indicative of a control packet.

TECHNICAL FIELD OF THE INVENTION

[0001] This invention relates to telecommunication network andequipment, and more particularly, to a method of addressing and routingdata.

BACKGROUND OF THE INVENTION

[0002] Multi-protocol label switching or MPLS is a framework specifiedby Internet Engineering Task Force (IETF) that provides efficientrouting, forwarding and switching traffic flows through atelecommunication network. MPLS allows a mapping of Internet protocol(IP) addresses to fixed length labels used by routers and otherequipment to route and switch packets. In MPLS, packets are transmittedon label-switched paths (LSPs), which are specified by a sequence oflabels at each node along the path from the source to the destination.LSPs are established prior to packet transmission. The labels aredistributed by protocols such as border gateway protocol (BGP). Eachdata packet encapsulates and carries the labels between the source andthe destination. The devices that operate using MPLS can be classifiedinto label edge routers (LERs) and label switching routers (LSRs), whichroute and switch the data packets at the edge and in the core of thenetwork. Therefore, the MPLS label governs inter-node packettransmission.

SUMMARY OF THE INVENTION

[0003] Although MPLS labels are used to forward packets between nodes ina network, a need has arisen for a means to route the packets insideeach network node. Furthermore, there is a need to determine the sourceport of a packet inside each network node so that a reply packet may besent back to the source port for transmission to the source of thepacket.

[0004] In accordance with an embodiment of the present invention, amethod of routing packets in a system includes the steps of receiving aplurality of packets, each packet including a routing label and a packettype, routing each packet to a destination within the system specifiedin the routing label in response to the packet type being indicative ofa data packet, and routing each packet to a processor within the systemand sending a reply packet to a sender specified in the routing label inresponse to the packet type being indicative of a control packet.

[0005] In accordance with another embodiment of the present invention, amethod of routing packets internally within a telecommunication systemincludes the steps of receiving a packet including a routing label and apacket type, routing the packet to a destination within the systemspecified in the routing label in response to the packet type beingindicative of a data packet, and routing the packet to a processorwithin the system and sending a reply packet to a sender specified inthe routing label in response to the packet type being indicative of acontrol packet.

[0006] In accordance with yet another embodiment of the presentinvention, a method of routing packets internally within a network nodeincludes the steps of receiving a packet including a routing label,routing the packet to a destination within the system specified by ashelf identifier, a slot identifier and a link identifier in the routinglabel in response to the packet being a data packet, and routing thepacket to a processor within the system and sending a reply packet to asender specified by a shelf identifier, a slot identifier and a linkidentifier in the routing label in response to the packet being acontrol packet.

BRIEF DESCRIPTION OF THE DRAWINGS

[0007] For a more complete understanding of the present invention, theobjects and advantages thereof, reference is now made to the followingdescriptions taken in connection with the accompanying drawings inwhich:

[0008]FIG. 1 is a block diagram of an exemplary system which mayimplement the addressing and routing scheme of the present invention;

[0009]FIG. 2 is a diagram of an embodiment of a format of a routinglabel according to the teachings of the present invention;

[0010]FIG. 3 is a diagram of an embodiment of a routing table accordingto the teachings of the present invention.

DETAILED DESCRIPTION OF THE DRAWINGS

[0011] The preferred embodiment of the present invention and itsadvantages are best understood by referring to FIGS. 1 through 3 of thedrawings, like numerals being used for like and corresponding parts ofthe various drawings.

[0012]FIG. 1 is a block diagram of an exemplary system 10, which mayimplement the addressing and routing scheme of the present invention.Like many telecommunications equipment, system 10 consists of aplurality of circuit cards plugged into a plurality of slots located onone or more shelves. System 10 includes a plurality of service cardssuch as Ethernet or SONET optical service cards 14 and 16 residing onone or more shelves 12, each with one or more components 18-24 such asnetwork processors or other addressable circuits. Each component 18-24includes one or more service ports 26 which are coupled to customerpremises equipment (CPE) and a first set of ports 28 of a switch fabric32. Service cards 14 and 16 may be interface cards such as 10/100 BaseTEthernet, Gigabit Ethernet, OC-N service cards. Switch fabric 32 resideson a shelf 30 along with a data processing unit 34, which is alsocoupled to a port of the switch fabric. Data processing unit 34possesses an address mapping table or label information base (inmulti-protocol label switching terminology) 36 in memory or another formof data storage that may be accessed and updated. A second set of switchfabric ports 38 is coupled to a plurality of channel interface cards44-50 residing on one or more shelves 40-42. Channel interface cards44-50 are further coupled to the telecommunication network via interfaceports 52 and 54. Although not shown explicitly, other circuit cardsperforming other functionality may be disposed or coupled between switchfabric 32 and channel interface cards 44-50.

[0013] In operation, data coming into system 10 via service cards 14-16are routed via switch fabric 32 to the proper port 38 for transport tothe telecommunication network via interface cards 44-50. Switch fabric32 also routes data messages to data processing unit 34 for processing,and routing reply messages therefrom back to the senders. The addressingand routing scheme of the present invention provides a way to identifythe origin and destination of the packet. In general, data transmissionoccurs on label-switched paths (LSPs) pursuant to multi-protocol labelswitching (MPLS). LSPs are a sequence of labels at each and every nodealong the path from the source to the destination. The labels may bedistributed using protocols such as label distribution protocol (LDP),border gateway protocol (BGP), or other suitable protocols.

[0014]FIG. 2 is a diagram of an embodiment of a format of a routinglabel 60 according to the teachings of the present invention. Routinglabel 60, also called a shelf-interface-channel (SIC) label, includes ashelf field 62 and a slot field 63 that are used to contain a shelfnumber and a slot number assigned to the shelf and the slot,respectively, of the sender of the packet if the packet is destined fordata processing unit 34. If the packet is not destined for dataprocessing unit 34, then the shelf and slot fields contains the shelfand slot numbers of the shelf and slot of the destination circuit card.A link field 64 is used to contain the representation of the sourcephysical link terminated on the slot if the packet is intended for thedata processing unit 34, otherwise the link field contains thedestination link. A channel field 65 is used to contain the channelnumber of a source channel multiplexed on the physical link if thepacket is destined for data processing unit 34, otherwise the channelfield contains the destination channel. Flow 66 is a field in therouting table to indicate the source virtual flow. A virtual flow is alogical representation or grouping of system components. A packet typefield 67 is used to indicate whether the packet is a data packet, atraffic manager packet, a network processor packet, or a switch fabricinterface (SFI) packet. In general, the packet type indicates theintended destination of the packet—a data packet is destined for anoutput port on system 10; a traffic manager packet is destined for atraffic manager (not explicitly shown) that resides in a circuit cardspecified by the shelf and slot fields; a network processor packet isdestined for the network processor residing in a card specified by theshelf and slot fields; and a SFI packet is destined for data processingunit 34 coupled to a switch fabric port. A prototype field 68 is used toindicate whether the packet is an MPLS packet or a non-MPLS packet suchas a packet for point-to-point protocol (PPP) negotiation. All fieldsare of an appropriate length in order to provide adequate informationfor each field.

[0015]FIG. 3 is a diagram of an embodiment of a routing table or labelinformation base 36 according to the teachings of the present invention.Label information base 36 includes a field 70 for indicating whether theentry is valid. A switch fabric (SF) port field 71 contains aspecification of the port number on the switch fabric the packetoriginated. A stack field 72 of label information base 36 contains theoperation to be performed. For example, if the stack bit in field 72 isa 0, label switch routing (LSR) function is performed; if the stack bitin field 72 is a 1, label edge routing (LER) function is performed. LSRand LER are functions performed by the appropriate routers either withinthe core of an MPLS network or at the edge of the access network,respectively, as known in the art. A U/M field 73 is used to indicatewhether the packet is for unicast or multicast. Label information base36 also includes an MPLS label field 74. As known in the art, an MPLSlabel field 74 is used to contain the MPLS label, which includes a nexthop value that functions as an index to an entry in label informationbase 36. MPLS label field 74 also includes an EXP field, which carriesthe class of service (CoS) if border gateway protocol is used todistribute the MPLS label or drop precedence if interior gatewayprotocol (IGP) is used. MPLS label field 74 also includes a stack bit,which is valid in the interior gateway protocol label to decide whichlabel information base entry to index. A time-to-live field is also inthe MPLS label, which is used in the interior gateway protocol to bedecremented when a packet is received on the line. Finally, labelinformation base 36 also includes SIC label 60 as described above andshown in FIG. 2.

[0016] In operation, SIC label 60 allows a packet to bear the shelf,slot, link and channel information of the source or the destination. Ifthe packet type is SFI, the packet is destined for the control planesuch as data processing unit 34. Because all packets destined for dataprocessing unit 34 arrive from the same port on switch fabric 32 andcould have originated from any other port of the switch fabric, thesource of the packet has to be identified in order for a reply packet tobe sent and routed. Therefore, SIC label 60 provides the shelf, slot,link and channel information that reflect the source of the packet, sothat data processing unit 34 may send a reply packet back to the sourcefor each received packet. If the packet type is not SFI, then the SIClabel including the shelf, slot, link and channel numbers provides anidentification of the destination of the packet. The SIC label, with thelink and channel designations, provides a fine granularity of resolutionso that a packet may be routed based on a specific port, wavelength,slot, and shelf of the destination. The SIC label is only valid within apiece of telecommunication equipment, such as a label switching routeror a label edge router. In other words, the SIC label is only used forinternal routing within each node located along the label switchedpaths.

[0017] The manner in which label information base is used is as in MPLSrouting as known in the art. In general, a label stack mechanism is usedto allow for hierarchical operation. Therefore, the MPLS label is usedfor routing between routers or some other equipment and the SIC label isused for routing within each router. Each level in a label stackpertains to the hierarchical level. Before any traffic begins therouters binds a label to a specific forward equivalence class (FEC) andbuilds the label information base tables. Downstream routers initiatethe distribution of the labels and the label/FEC binding. On receipt oflabel bindings each LSR creates entries in the label information base.The contents of the label information base map the label to an FEC. TheMPLS label in the label information base is used to find the next hop inthe path, while the SIC label, according to the teachings of the presentinvention, is used to find the destination circuit card, link andchannel within the router. Further, a fine granularity of resolution ofthe destination is provided by the present invention that is heretoforenot available.

[0018] While the invention has been particularly shown and described bythe foregoing detailed description, it will be understood by thoseskilled in the art that various changes, alterations, modifications,mutations and derivations in form and detail may be made withoutdeparting from the spirit and scope of the invention.

What is claimed is:
 1. A method of routing packets in a system,comprising: receiving a plurality of packets, each packet including arouting label and a packet type; routing each packet to a destinationwithin the system specified in the routing label in response to thepacket type being indicative of a data packet; and routing each packetto a processor within the system and sending a reply packet to a senderspecified in the routing label in response to the packet type beingindicative of a control packet.
 2. The method, as set forth in claim 1,wherein routing each packet to a destination comprises routing eachpacket to the destination specified by shelf and slot numbers of thedestination included in the routing label.
 3. The method, as set forthin claim 1, wherein routing each packet to a destination comprisesrouting each packet to the destination specified by a shelf identifier,a slot identifier, a link identifier, and a channel identifier includedin the routing label for transporting the packet.
 4. The method, as setforth in claim 1, wherein sending the reply packet to a sender comprisesrouting the reply packet to the sender specified by shelf and slotnumbers of the sender included in the routing label.
 5. The method, asset forth in claim 1, wherein sending the reply packet to a sendercomprises routing the reply packet to the sender specified by a shelfidentifier, a slot identifier, a link identifier, and a channelidentifier included in the routing label for transporting the replypacket.
 6. The method, as set forth in claim 1, wherein routing eachpacket to a destination comprises: receiving each packet at a switch;and switching each packet to the destination coupled to a predeterminedport of the switch as specified by shelf and slot numbers of thedestination included in the routing label.
 7. The method, as set forthin claim 1, wherein routing each packet to a destination comprises:receiving each packet at a switch; and routing each packet to thedestination coupled to a predetermined port of the switch as specifiedby a shelf identifier, a slot identifier, a link identifier, and achannel identifier included in the routing label for transporting thepacket.
 8. The method, as set forth in claim 1, wherein routing eachpacket to a processor and sending the reply packet to a sendercomprises: receiving each packet at a switch; switching the packet to apredetermined port of the switch coupled to the processor; and switchingthe reply packet to the sender coupled to a second predetermined port ofthe switch specified by shelf and slot numbers of the sender included inthe routing label.
 9. The method, as set forth in claim 1, whereinrouting each packet to a processor and sending the reply packet to asender comprises: receiving each packet at a switch; switching thepacket to a predetermined port of the switch coupled to the processor;and switching the reply packet to the sender coupled to a secondpredetermined port of the switch specified by a shelf identifier, a slotidentifier, a link identifier, and a channel identifier included in therouting label for transporting the reply packet.
 10. A method of routingpackets internally within a telecommunication system, comprising:receiving a packet including a routing label and a packet type; routingthe packet to a destination within the system specified in the routinglabel in response to the packet type being indicative of a data packet;and routing the packet to a processor within the system and sending areply packet to a sender specified in the routing label in response tothe packet type being indicative of a control packet.
 11. The method, asset forth in claim 10, further comprising pushing the routing label ontoa label information table stack after receiving the packet.
 12. Themethod, as set forth in claim 11, further comprising popping the routinglabel onto the label information table stack after receiving the packetat the destination within the system.
 13. The method, as set forth inclaim 11, further comprising popping the routing label from the labelinformation table stack after receiving the packet at the processorwithin the system.
 14. The method, as set forth in claim 10, whereinrouting a packet to a destination comprises routing each packet to thedestination specified by shelf and slot numbers of the destinationincluded in the routing label.
 15. The method, as set forth in claim 10,wherein routing a packet to a destination comprises routing each packetto the destination specified by a shelf identifier, a slot identifier, alink identifier, and a channel identifier included in the routing labelfor transporting the packet.
 16. The method, as set forth in claim 10,wherein sending the reply packet to a sender comprises routing the replypacket to the sender specified by shelf and slot numbers of the senderincluded in the routing label.
 17. The method, as set forth in claim 10,wherein sending the reply packet to a sender comprises routing the replypacket to the sender specified by a shelf identifier, a slot identifier,a link identifier, and a channel identifier included in the routinglabel for transporting the reply packet.
 18. The method, as set forth inclaim 10, wherein routing a packet to a destination comprises: receivingthe packet at a switch; and switching the packet to the destinationcoupled to a predetermined port of the switch as specified by shelf andslot numbers of the destination included in the routing label.
 19. Themethod, as set forth in claim 10, wherein routing a packet to adestination comprises: receiving the packet at a switch; and switchingthe packet to the destination coupled to a predetermined port of theswitch as specified by a shelf identifier, a slot identifier, a linkidentifier, and a channel identifier included in the routing label fortransporting the packet.
 20. The method, as set forth in claim 10,wherein routing a packet to a processor and sending the reply packet toa sender comprises: receiving the packet at a switch; switching thepacket to a predetermined port of the switch coupled to the processor;and switching the reply packet to the sender coupled to a secondpredetermined port of the switch specified by shelf and slot identifiersof the sender included in the routing label.
 21. The method, as setforth in claim 10, wherein routing a packet to a processor and sendingthe reply packet to a sender comprises: receiving the packet at aswitch; switching the packet to a predetermined port of the switchcoupled to the processor; and switching the reply packet to the sendercoupled to a second predetermined port of the switch specified by ashelf identifier, a slot identifier, a link identifier, and a channelidentifier included in the routing label for transporting the replypacket.
 22. A method of routing packets internally within a networknode, comprising: receiving a packet including a routing label; routingthe packet to a destination within the system specified by a shelfidentifier, a slot identifier and a link identifier in the routing labelin response to the packet being a data packet; and routing the packet toa processor within the system and sending a reply packet to a senderspecified by a shelf identifier, a slot identifier and a link identifierin the routing label in response to the packet being a control packet.23. The method, as set forth in claim 22, further comprising pushing therouting label onto a label information table stack after receiving thepacket.
 24. The method, as set forth in claim 23, further comprising:accessing the routing label in the label information table stack; andpopping the routing label from the label information table stack afterreceiving the packet at the destination within the system.
 25. Themethod, as set forth in claim 23, further comprising popping the routinglabel from the label information table stack after receiving the packetat the processor within the system.
 26. The method, as set forth inclaim 22, wherein routing a packet to a destination further comprisesrouting each packet to the destination further specified by a channelidentifier included in the routing label for transporting the packet.27. The method, as set forth in claim 22, wherein sending the replypacket to a sender comprises routing the reply packet to the senderspecified by a channel identifier included in the routing label fortransporting the reply packet.
 28. The method, as set forth in claim 22,wherein routing a packet to a destination comprises: receiving thepacket at a switch; and switching the packet to the destination coupledto a predetermined port of the switch as specified by the shelf, slotand link identifiers of the destination included in the routing label.29. The method, as set forth in claim 22, wherein routing a packet to adestination comprises: receiving the packet at a switch; and switchingthe packet to the destination coupled to a predetermined port of theswitch as specified by the shelf identifier, slot identifier, linkidentifier, and a channel identifier included in the routing label fortransporting the packet.
 30. The method, as set forth in claim 22,wherein routing a packet to a processor and sending the reply packet toa sender comprises: receiving the packet at a switch; switching thepacket to a predetermined port of the switch coupled to the processor;and switching the reply packet to the sender coupled to a secondpredetermined port of the switch specified by the shelf, slot and linkidentifiers of the sender included in the routing label.
 31. The method,as set forth in claim 22, wherein routing a packet to a processor andsending the reply packet to a sender comprises: receiving the packet ata switch; switching the packet to a predetermined port of the switchcoupled to the processor; and switching the reply packet to the sendercoupled to a second predetermined port of the switch specified by theshelf identifier, slot identifier, link identifier, and a channelidentifier included in the routing label for transporting the replypacket.